package com.anabur.pojos.filtro;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.anabur.persistent.Empresa;
import com.anabur.services.CalculatorEngine;

/**
 * Esta clase se utiliza para completar todos los filtros de procesamiento que se configuren en pantalla.
 * 
 * @author Pablo
 *
 */
public class Filtro implements Serializable{
	private static final long serialVersionUID = 6851266027405597039L;
	
	private String metodo;
	private Date fechaDesde;
	private Date fechaHasta;
	private BigDecimal comision;
	private Integer recambio;
	// El campo inversion poderada tiene como Key el puesto y el valor sera el porcentaje de inversion
	private HashMap<Integer, BigDecimal> inversionPonderada;
	// El campo RubrosVetados tiene como Key el nombre del rubro y el valor sera la cantidad de empresas maximas a invertir del rubro
	private HashMap<String, Integer> RubrosVetados;
	private List<Empresa> empresasSeleccionadas;
	
	public Filtro(){
		// valores por default en el filtro
		empresasSeleccionadas = new ArrayList<Empresa>();
		inversionPonderada = new HashMap<Integer, BigDecimal>();
		inversionPonderada.put(1, BigDecimal.ZERO);
		inversionPonderada.put(2, BigDecimal.ZERO);
		inversionPonderada.put(3, BigDecimal.ZERO);
		inversionPonderada.put(4, BigDecimal.ZERO);
		inversionPonderada.put(5, BigDecimal.ZERO);
		comision = BigDecimal.ZERO;
		recambio = BigDecimal.ZERO.intValue();
		fechaDesde = new Date();
		fechaHasta = new Date();
		metodo = CalculatorEngine.PASQUALI_METHOD;
	}

	public Date getFechaDesde() {
		return fechaDesde;
	}

	public void setFechaDesde(Date fechaDesde) {
		this.fechaDesde = fechaDesde;
	}

	public Date getFechaHasta() {
		return fechaHasta;
	}

	public void setFechaHasta(Date fechaHasta) {
		this.fechaHasta = fechaHasta;
	}

	public BigDecimal getComision() {
		return comision;
	}

	public void setComision(BigDecimal comision) {
		this.comision = comision;
	}

	public Integer getRecambio() {
		return recambio;
	}

	public void setRecambio(Integer recambio) {
		this.recambio = recambio;
	}

	public HashMap<Integer, BigDecimal> getInversionPonderada() {
		return inversionPonderada;
	}

	public void setInversionPonderada(HashMap<Integer, BigDecimal> inversionPonderada) {
		this.inversionPonderada = inversionPonderada;
	}

	public HashMap<String, Integer> getRubrosVetados() {
		return RubrosVetados;
	}

	public void setRubrosVetados(HashMap<String, Integer> rubrosVetados) {
		RubrosVetados = rubrosVetados;
	}

	public List<Empresa> getEmpresasSeleccionadas() {
		return empresasSeleccionadas;
	}

	public void setEmpresasSeleccionadas(List<Empresa> empresasSeleccionadas) {
		this.empresasSeleccionadas = empresasSeleccionadas;
	}

	public String getMetodo() {
		return metodo;
	}

	public void setMetodo(String metodo) {
		this.metodo = metodo;
	}
	
	
}
